iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0

在 Docker 的領域中,最小的執行單位是 Container。一個 Container 就像是一台小型主機,擁有自己的 IP、Port 和檔案系統。然而,在 Kubernetes 的世界中,最小的執行單位是 Pod。一個 Pod 中可以包含一個或多個 Container,這些 Container 不再是獨立的小主機,而是共享同一個 IP、Port 和檔案系統。因此,同一個 Pod 中的 Container 可以透過 localhost 互相通信,同時也由 Kubernetes 進行調度。

我們可以透過 YAML 文件定義 Pod 的規格,然後使用指令創建相應的 Pod。以下是一個示例,我們順便加上之前設定的 ConfigMap 和 Secret。

ubuntu-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: ubuntu-pod
spec:
  containers:
  - name: ubuntu
    image: ubuntu:20.04
    args: [bash, -c, 'for ((i = 0; ; i++)); do echo "$i: $(date)"; sleep 100; done']
    env:
    - name: key1
      valueFrom:
        configMapKeyRef:
          name: configmap-test
          key: key1
    - name: key2
      valueFrom:
        secretKeyRef:
          name: secret-test
          key: key2

產生這個 Pod 的文件後,我們可以使用以下指令創建 Pod:

kubectl apply -f ubuntu-pod.yaml

創建後,可以使用以下指令查看所有執行中的 Pod:

kubectl get pods
# 或
kubectl get po

接下來,我們可以使用以下指令連接到 Pod 中,直接對 Pod 下指令:

kubectl exec -it ubuntu-pod -- bash
echo $key1  # 查看 ConfigMap 導入的環境變數
> value1
echo $key2  # 查看 Secret 導入的環境變數
> value2
exit  # 退出

最後,我們可以使用以下指令刪除 Pod:

kubectl delete -f ubuntu-pod.yaml
# 或
kubectl delete pod ubuntu-pod

上一篇
Day25 ConfigMap & Secret
下一篇
Day27 Service
系列文
docker30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言